import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Admin
 * Date: 2022-12-05
 * Time: 21:10
 */
public class Demo2 {
    public static double func(int[][] array,int m,int n) {
        double[][] dp = new double[m+1][n+1];
        dp[1][1] = 1.0;
        for(int i = 1; i <= m; i++) {
            for(int j = 1; j <=n; j++) {
                if(!(i == 1 && j == 1)) {
                    dp[i][j] = dp[i-1][j] * (j == n ? 1.0 : 0.5) + dp[i][j-1] * (i == m ? 1.0 : 0.5);
                }

                if(array[i][j] == 1) {
                    dp[i][j] = 0.0;
                }
            }
        }
        return dp[m][n];
    }

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        while(scan.hasNext()) {

            int m = scan.nextInt();
            int n = scan.nextInt();
            int k = scan.nextInt();

            int[][] array = new int[m+1][n+1];
            for(int i = 0; i < k; i++) {
                int x = scan.nextInt();
                int y = scan.nextInt();
                array[x][y] = 1;
            }

            System.out.printf("%.2f\n",func(array,m,n));
        }
    }
}
